package ophiux.wechatpay.sdk.request;

import java.util.HashMap;
import java.util.Map;

import ophiux.wechatpay.sdk.response.DownloadBillListResponse;
import ophiux.wechatpay.sdk.response.DownloadBillResponse;

/**
 * 下载对账单   请求参数
 * <br/>请求地址:https://api.mch.weixin.qq.com/pay/downloadbill
 * <br/><h1>创建人: hehailong</h1><br/>
 * 创建时间：2017-7-10 下午2:46:24<br/>
 * 修改记录1：
 */
public class DownloadBillRequest extends OphiuxBaseRequest<DownloadBillListResponse>{
	//字段名	变量名	必填	类型	示例值	描述
	/** 设备号 device_info 否 String(32) 013467007045764 微信支付分配的终端设备号 */
	private String device_info; 
	/** 随机字符串 nonce_str 是 String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串，不长于32位。推荐随机数生成算法 */
	private String nonce_str; 
	/** 对账单日期 bill_date 是 String(8) 20140603 下载对账单的日期，格式：20140603  */
	private String bill_date; 
	/** 账单类型 bill_type 是 String(8) ALL    ALL，返回当日所有订单信息，默认值    SUCCESS，返回当日成功支付的订单    REFUND，返回当日退款订单    RECHARGE_REFUND，返回当日充值退款订单（相比其他对账单多一栏“返还手续费”） */
	private String bill_type;
	/** 压缩账单 tar_type 否 String(8) GZIP 非必传参数，固定值：GZIP，返回格式为.gzip的压缩包账单。不传则默认为数据流形式。 */
	private String tar_type; 

	
	
	@Override
	public String getApiMethod() {
		return "POST";
	}

	@Override
	public String getApiVersion() {
		return null;
	}

	@Override
	public Map getTextParam() {
		Map<String, String>  map = new HashMap<String, String>();
		map.put("device_info", device_info);
		map.put("nonce_str", nonce_str);
		map.put("bill_date", bill_date);
		map.put("bill_type", bill_type);
		map.put("tar_type", tar_type);
		
		return map;
	}

	@Override
	public Class<DownloadBillListResponse> getResponseClass() {
		return DownloadBillListResponse.class;
	}

	
	
	
	public String getDevice_info() {
		return device_info;
	}

	public void setDevice_info(String device_info) {
		this.device_info = device_info;
	}

	public String getNonce_str() {
		return nonce_str;
	}

	public void setNonce_str(String nonce_str) {
		this.nonce_str = nonce_str;
	}

	public String getBill_date() {
		return bill_date;
	}

	public void setBill_date(String bill_date) {
		this.bill_date = bill_date;
	}

	public String getBill_type() {
		return bill_type;
	}

	public void setBill_type(String bill_type) {
		this.bill_type = bill_type;
	}

	public String getTar_type() {
		return tar_type;
	}

	public void setTar_type(String tar_type) {
		this.tar_type = tar_type;
	}

}
